home *** CD-ROM | disk | FTP | other *** search
/ Aminet 19 / Aminet 19 (1997)(GTI - Schatztruhe)[!][Jun 1997].iso / Aminet / comm / misc / RecentScript.lha / RecentScript / RecentScript.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  1997-02-14  |  6.5 KB  |  212 lines

  1. /*****
  2.   $VER: RecentScript Starter 1.0 (9.2.97) ©Arndt van der Molen
  3.  
  4.  
  5.                    RecentScript Starter
  6.  
  7.  is a MUIRexx application and must be started under MUIRexx
  8.  
  9.  1> MUIRexx "RecentScript.rexx [<arg>]" PORT RECENTSCRIPT
  10.  
  11.  This application reads AmiNet index files or recent mails as
  12.  distributed from a mailserver or recent news published in
  13.  the newsgroup '*.comp.sys.amiga.archive'.
  14.  
  15.  It opens a MUI graphical user interface to select files for
  16.  downloading, copying or remembering. Files can be selected
  17.  from several input sources into one final list at one or
  18.  more sessions.
  19.  
  20.  Finally you can generate a final user defined output from
  21.  the selected files. This can be an ARexx/DOS script or
  22.  simply a text file. New output configurations can easily be
  23.  edited, added and may contain user defined variables which
  24.  can be altered within the program.
  25. *****/
  26.  
  27.  
  28.  
  29. /* Change to path with trailing ':' or '/' where this script resides */
  30.  
  31. srcdir = 'MUIREXX:RecentScript/'
  32.  
  33.  
  34.  
  35. /* !!! NOTHING TO CHANGE BELOW THIS LINE !!! */
  36.  
  37. OPTIONS RESULTS
  38.  
  39. PARSE ARG recentfile
  40.  
  41.  
  42. /* Startup code before opening window */
  43.  
  44. portname = 'RECENTSCRIPT'
  45. closecom = '"quit"'
  46.  
  47. PRAGMA('Directory',srcdir)   /* Set current directory */
  48.  
  49. ADDRESS VALUE portname
  50.  
  51. IF ~SHOW('l', "rexxsupport.library") then do
  52.     CALL addlib('rexxsupport.library',0,-30,0)
  53. END
  54.  
  55. /* Get all Config files '*.cfg' to build up menu */
  56.  
  57. configs.0 = 0
  58. i = 0
  59.  
  60. allfiles = showdir(srcdir || 'Configs', 'f', ';')
  61.  
  62. DO WHILE allfiles ~= ''
  63.  
  64.   PARSE VAR allfiles entry';'allfiles
  65.  
  66.   IF RIGHT(entry,4) = ".cfg" & LENGTH(entry) > 4 THEN DO
  67.  
  68.     configs.0 = configs.0 + 1
  69.     i = configs.0
  70.  
  71.     configs.i = LEFT(entry, LENGTH(entry)-4)
  72.  
  73.   END
  74. END
  75.  
  76. /* Build up cycle button string with all configs */
  77.  
  78. cycletext = 'AmiNet Index'
  79.  
  80. DO i=1 TO configs.0
  81.   cycletext = cycletext || ',' || configs.i
  82. END
  83.  
  84.  
  85. /* TAG Attributes Definitions */
  86.  
  87. MUIA_List_Format          = '0x80423c0a'
  88. MUIA_Listview_MultiSelect = '0x80427e08'
  89. MUIA_VertWeight           = '0x804298d0'
  90. MUIA_Busy_Speed           = '0x80020049'
  91. MUIA_Weight               = '0x80421d1f'
  92. MUIA_Menuitem_Shortcut    = '0x80422030'
  93. MUIA_Menuitem_Title       = '0x804218be'
  94.  
  95. /* TAG Methods Definitions */
  96.  
  97. MUIM_Application_OpenConfigWindow = '0x804299ba'
  98.  
  99. /* TAG Variable definitions */
  100.  
  101. MUIV_List_Insert_Bottom           = -3
  102. MUIV_Listview_MultiSelect_Default =  1
  103. MUIV_Busy_Speed_Off               =  0
  104.  
  105. /* GUI Help Bubbles */
  106.  
  107. HLP_BUT_ADD   = '"Adds selected entries to '"'Selected Files'"'"'
  108. HLP_LST_ALL   = '"Multiselect entries and click Select or\nDoubleclick entry"'
  109. HLP_BUT_CLR   = '"Clears the file list"'
  110. HLP_BUT_LOD   = '"Loads an index file"'
  111. HLP_BUT_MINUS = '"Deselects entries with search string"'
  112. HLP_BUT_PLUS  = '"Selects entries with search string"'
  113. HLP_BUT_SAV   = '"Saves the selected files"'
  114. HLP_BUT_TEST  = '"Only for internal use"'
  115. HLP_LST_SEL   = '"Doubleclick to remove entry"'
  116. HLP_STR_PATT  = '"Defines search string (without wildcards!)"'
  117. HLP_CYC_BAT   = '"Defines Batch Mode to use"'
  118.  
  119. /* GUI Commands */
  120.  
  121. CMD_BUT_ADD   = '"'srcdir'RecentScriptCmd 'portname' ADD"'
  122. CMD_LST_ALL   = '"'srcdir'RecentScriptCmd 'portname' ADD"'
  123. CMD_BUT_CLR1  = '"'srcdir'RecentScriptCmd 'portname' CLR LST_ALL"'
  124. CMD_BUT_CLR2  = '"'srcdir'RecentScriptCmd 'portname' CLR LST_SEL"'
  125. CMD_BUT_DEL   = '"'srcdir'RecentScriptCmd 'portname' DEL"' 
  126. CMD_BUT_LOD1  = '"'srcdir'RecentScriptCmd 'portname' LOAD LST_ALL"'
  127. CMD_BUT_LOD2  = '"'srcdir'RecentScriptCmd 'portname' LOAD LST_SEL"'
  128. CMD_BUT_MINUS = '"'srcdir'RecentScriptCmd 'portname' MINUS"' 
  129. CMD_BUT_PLUS  = '"'srcdir'RecentScriptCmd 'portname' PLUS"' 
  130. CMD_BUT_SAV   = '"'srcdir'RecentScriptCmd 'portname' SAVE"' 
  131. CMD_BUT_TEST  = '"'srcdir'RecentScriptCmd 'portname' TEST"'
  132. CMD_MEN_SETB  = '"'srcdir'RecentScriptCmd 'portname' SETBAT dummy [%s]"'
  133.  
  134. /* GUI Titles */
  135.  
  136. TLE_LST_ALL = ''"\033bFile,\033bDir,\033bSize,\033bDescription"''
  137. TLE_LST_SEL = ''"\033bFile,\033bDir,\033bSize,\033bDescription"''
  138.  
  139. /* GUI Definitions */
  140.  
  141. window ID RECSCRWIN TITLE '"RecentScript"' COMMAND closecom PORT portname
  142.  
  143.   menu LABEL '"Project"'
  144.  
  145.     item COMMAND '"request TITLE About GADGETS '"_OK"' FILE 'srcdir'Internals/about.txt"' PORT portname LABEL '"About..."'
  146.     item ATTRS MUIA_Menuitem_Title '-1'
  147.     item COMMAND closecom PORT portname ATTRS MUIA_Menuitem_Shortcut 'Q' LABEL '"Quit"'
  148.   endmenu
  149.  
  150.   menu LABEL '"Settings"'
  151.  
  152.     menu LABEL '"Batch Mode"'
  153.  
  154.       /* For each found config add one menuitem */
  155.       DO i=1 TO configs.0
  156.         item COMMAND CMD_MEN_SETB LABEL '"'configs.i'"'
  157.       END
  158.     endmenu
  159.  
  160.     item ATTRS MUIA_Menuitem_Title '-1'
  161.     item COMMAND '"method 'MUIM_Application_OpenConfigWindow'"' PORT portname LABEL '"MUI..."'
  162.   endmenu
  163.  
  164.   group ATTRS MUIA_VertWeight 70 FRAME LABEL '"AmiNet Index"'
  165.  
  166.     list ID LST_ALL COMMAND CMD_LST_ALL HELP HLP_LST_ALL TITLE TLE_LST_ALL ATTRS MUIA_Listview_MultiSelect MUIV_Listview_MultiSelect_Default MUIA_List_Format '"MIW=24 BAR, MIW=5 BAR, MIW=1 P=\033r BAR, MIW=70"'
  167.  
  168.     group HORIZ
  169.       button ATTRS MUIA_Weight 28 COMMAND CMD_BUT_ADD   HELP HLP_BUT_ADD   LABEL 'Select'
  170.       button ATTRS MUIA_Weight 28 COMMAND CMD_BUT_LOD1  HELP HLP_BUT_LOD   LABEL 'Load...'
  171.       button ATTRS MUIA_Weight 28 COMMAND CMD_BUT_CLR1  HELP HLP_BUT_CLR   LABEL 'Clear'
  172.       string ATTRS MUIA_Weight 16 ID STR_PATT           HELP HLP_STR_PATT
  173.       button ATTRS MUIA_Weight 0  COMMAND CMD_BUT_PLUS  HELP HLP_BUT_PLUS  LABEL '+'
  174.       button ATTRS MUIA_Weight 0  COMMAND CMD_BUT_MINUS HELP HLP_BUT_MINUS LABEL '-'
  175. /*    button ATTRS MUIA_Weight 0  COMMAND CMD_BUT_TEST  HELP HLP_BUT_TEST  LABEL 'Test' */
  176.     endgroup
  177.  
  178.   endgroup
  179.  
  180.   object CLASS '"Busy.mcc"' ID CLS_BUSY ATTRS MUIA_VertWeight 0 MUIA_Busy_Speed MUIV_Busy_Speed_Off
  181.   object CLASS '"Balance.mui"'
  182.  
  183.   group ATTRS MUIA_VertWeight 30 FRAME LABEL '"Selected Files"' 
  184.  
  185.     list ID LST_SEL COMMAND CMD_BUT_DEL HELP HLP_LST_SEL TITLE TLE_LST_SEL ATTRS MUIA_List_Format '"MIW=24 BAR, MIW=5 BAR, MIW=1 P=\033r BAR, MIW=70"'
  186.  
  187.     group HORIZ
  188.       group HORIZ FRAME
  189.         button COMMAND CMD_BUT_SAV  HELP HLP_BUT_SAV LABEL 'Save...'
  190.         label '"as"'
  191.         cycle  ID CYC_BAT           HELP HLP_CYC_BAT LABELS '"'cycletext'"' 
  192.       endgroup
  193.       group HORIZ FRAME
  194.         button COMMAND CMD_BUT_LOD2 HELP HLP_BUT_LOD LABEL 'Load...'
  195.         button COMMAND CMD_BUT_CLR2 HELP HLP_BUT_CLR LABEL 'Clear'
  196.       endgroup
  197.     endgroup
  198.  
  199.   endgroup
  200. endwindow
  201.  
  202.  
  203. /* Startup code after opening window */
  204.  
  205. IF recentfile ~= '' THEN DO
  206.   call RecentScriptCmd portname LOAD LST_ALL '['recentfile']'
  207. END
  208.  
  209. call RecentScriptCmd portname LOAD LST_SEL '['srcdir'RecentScript.lst]'
  210.  
  211. exit
  212.